Keir Fraser [Thu, 2 Jul 2009 10:31:58 +0000 (11:31 +0100)]
x86 hvm: Remove assertion that PIC IRQs are delivered only to VCPU0.
It's no longer true, if the guest reprograms IOAPIC pin0 for example.
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
Keir Fraser [Thu, 2 Jul 2009 10:31:00 +0000 (11:31 +0100)]
buikd: Fix the detection of udev with udevadm version < 128
Signed-off-by: Marc-A. Dahlhaus <mad@wol.de>
Keir Fraser [Wed, 1 Jul 2009 19:22:29 +0000 (20:22 +0100)]
x86 hvm: Allow delivery of legacy 8259 interrupts to VCPUs != 0.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Wed, 1 Jul 2009 13:58:31 +0000 (14:58 +0100)]
x86 hvm: Fix #UD interception.
* Interception should be standard part of HVM_TRAP_MASK
* Failed intercept should quietly forward #UD to the guest
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Wed, 1 Jul 2009 09:54:25 +0000 (10:54 +0100)]
Remove redundant semicolons
Signed-off-by: Rikiya Ayukawa <ayukawa.rikiya@jp.fujitsu.com>
Keir Fraser [Wed, 1 Jul 2009 09:53:15 +0000 (10:53 +0100)]
blktap2: add blktap2 device class and device controller
blktap2 devices must be handled differently than blktap2
devices. blktap2 devices require a sysfs write to close the underlying
device, as well as extra sysfs writes when the domU is
paused/unpaused. The differences between blktap1 and blktap2 are great
enough to warrant the creation of a new device class, 'tap2', and
device controller for blktap2 devices.
* add a new device controller (Blktap2Controller) and device class
(tap2) for blktap2 devices
* move blktap2 specific code from DevController to Blktap2Controller
* if possible, check xenstore to determine block device class
* use vmpath (/vm/<uuid>/) when releasing devices
* modify linux hotplug cleanup script to handle blktap2 device
removal
Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
Keir Fraser [Tue, 30 Jun 2009 15:00:57 +0000 (16:00 +0100)]
Keir Fraser [Tue, 30 Jun 2009 15:00:29 +0000 (16:00 +0100)]
VT-d: Remove the dprintk() in alloc_pgtable_maddr()
The trivial message is printed too many when xen boots and when we
create hvm guests with devices assigned.
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Keir Fraser [Tue, 30 Jun 2009 14:40:39 +0000 (15:40 +0100)]
x86 hvm mce: Support HVM Guest virtual MCA handling.
When MCE# happens, if the error has been contained/recovered by XEN
and it impacts one guest Domain(DOM0/HVM Guest/PV Guest), we will
inject the corresponding vMCE# into the impacted Domain. Guest OS will
go on its own recovery job if it has MCA handler.
Signed-off-by: Liping Ke <liping.ke@intel.com>
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Keir Fraser [Tue, 30 Jun 2009 14:37:14 +0000 (15:37 +0100)]
xend: get rid of hardcoded path in xend config file
* Change default settings to relative pathes.
* Make xend to prepend install directory if entries have no absolute
* path
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Mon, 29 Jun 2009 14:50:32 +0000 (15:50 +0100)]
x86 svm: Fix svm_update_guest_efer() after c/s 19856.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Mon, 29 Jun 2009 10:03:24 +0000 (11:03 +0100)]
x86 Cx tracing: adds gtraceview & gtracestat utilities
Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
Keir Fraser [Mon, 29 Jun 2009 10:01:50 +0000 (11:01 +0100)]
x86 Cx tracing: export the Cx exit reason (pending interrupt during Cx)
Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
Keir Fraser [Mon, 29 Jun 2009 10:00:56 +0000 (11:00 +0100)]
x86 Cx tracing: export expected/predicted Cx to xentrace
Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
Keir Fraser [Mon, 29 Jun 2009 09:58:56 +0000 (10:58 +0100)]
x86 tboot: Fix c/s 19577
Signed-off-by: Shane Wang <shane.wang@intel.com>
Keir Fraser [Mon, 29 Jun 2009 09:51:35 +0000 (10:51 +0100)]
Merge with ia64 tree
Isaku Yamahata [Mon, 29 Jun 2009 02:26:05 +0000 (11:26 +0900)]
[IA64] replace MAX_VCPUS with d->max_vcpus where necessary.
don't use MAX_VCPUS, and use vcpu::max_vcpus.
The changeset of
2f9e1348aa98 introduced max_vcpus to allow more vcpus
per guest. This patch is ia64 counter part.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Isaku Yamahata [Mon, 29 Jun 2009 02:23:53 +0000 (11:23 +0900)]
[IA64] plumb tmem hypercall entry point on ia64.
add do_tmem_op() to ia64_hypercall_table to support tmem.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Isaku Yamahata [Mon, 29 Jun 2009 02:23:31 +0000 (11:23 +0900)]
[IA64] remove a warning
This patch removes the following warning.
> unwind.c:40:1: warning: "write_trylock" redefined
> In file included from xen/include/xen/sched.h:7,
> from unwind.c:33:
> xen/include/xen/spinlock.h:115:1: warning: this is the location of the previous definition
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Keir Fraser [Sat, 27 Jun 2009 09:47:38 +0000 (10:47 +0100)]
fs-backend: fix default export and filename checks
This patch changes fs-backend to use /var/lib/xen as default export
and check all the file names and paths given by the frontend against the
export path, so that the frontend can only operate under the export
directory.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Keir Fraser [Sat, 27 Jun 2009 09:40:11 +0000 (10:40 +0100)]
tmem: extra stats
This patch collects a few additional valuable per-domain
performance stats.
Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Keir Fraser [Sat, 27 Jun 2009 09:39:10 +0000 (10:39 +0100)]
minios: fix free_fbfront
When a stubdom is destroyed, fbfront tries to unbind the evtchn
twice.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Keir Fraser [Sat, 27 Jun 2009 09:37:51 +0000 (10:37 +0100)]
docs: Add network_setup.txt file explaining bridge setup.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Keir Fraser [Sat, 27 Jun 2009 09:33:33 +0000 (10:33 +0100)]
x86 svm: Make 32bit legacy guests boot again
Attached patch fixes a bug introduced in c/s 19648.
32bit legacy guests have the sysenter/sysexit instructions available.
Therefore, we have to disable intercepts for the sysenter MSRs or the
guest stucks in an infinite loop of #GPs, otherwise.
For guests in 64bit mode and 32bit compat mode, sysenter/sysexit
instructions aren't available. The sysenter MSRs have to be
intercepted to make the instruction emulation working.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Sat, 27 Jun 2009 09:02:52 +0000 (10:02 +0100)]
Keir Fraser [Sat, 27 Jun 2009 09:01:20 +0000 (10:01 +0100)]
xend: pass-through: Implement least-mapping of virtual functions
This is an alternative to identity mapping virtual functions.
It works by assigning the numerically lowest virtual function that is
available.
* The order of assignment is thus dependent on the order that physical
functions are specified.
e.g.
config physical virtual
01.00.0,2 -> 01:00.0 -> 00:07.0
-> 01:00.2 -> 00:07.1
is different to
config physical virtual
01.00.2,0 -> 01:00.2 -> 00:07.0
-> 01:00.0 -> 00:07.1
* Physical function 0 need not be present
e.g.
config physical virtual
01.00.1,2 -> 01:00.1 -> 00:07.0
-> 01:00.2 -> 00:07.1
* Functions from the same physical multi-function device
may be exported as multiple multi-function and single-function
devices
e.g.
01.00.0,2 -> 01:00.0 -> 00:07.0
-> 01:00.2 -> 00:07.1
and
01.00.1,3 -> 01:00.1 -> 00:08.1
-> 01:00.3 -> 00:08.1
and
01.00.5 -> 01:00.5 -> 00:09.0
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 09:00:24 +0000 (10:00 +0100)]
xend: pass-through: rename vslot to vdevfn and vslots to vdevfns
This is a noisy patch that makes not functional changes.
It renames vslot to vdevfn and vslots to vdevfns.
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 08:56:15 +0000 (09:56 +0100)]
xend: pass-through: Parse command line for multi-function hot-plug and unplug
Hook things up to allow multi-function pass-through.
This includes making sure that request is valid.
In the case of pci-detach:
* All the functions requested must be attached to the same virtual
slot * and;
* A request must include the functions attached to a virtual slot
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 08:55:42 +0000 (09:55 +0100)]
xend: pass-through: Add key to pci device dictionary
This will be used to identify the functions belonging to
a multi-function device.
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 08:54:54 +0000 (09:54 +0100)]
xend: pass-through: Add pci_dict_bin_to_str()
Break out the device list gathering code from xm_pci_list()
so that it can be re-used by subsequent changes.
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 08:54:29 +0000 (09:54 +0100)]
xend: pass-through: Only tell qemu-xen to unplug function 0
When unplugging a function, all functions in the same vslot must be
unplugged, and function 0 must be one of the functions present when a
vslot is hot-plugged. Telling qemu-dm to unplug function 0 also tells
it to unplug all other functions in the same vslot.
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 08:53:56 +0000 (09:53 +0100)]
xend: pass-through: Allow multi-function device specifications to be parsed
The general format is as follows:
Now: SEQ:BUS:DEV.FUNC[@VSLOT][,OPT...]
New: SEQ:BUS:DEV.FUNC0-FUNCN[@VSLOT][,OPT...]
SEQ:BUS:DEV.FUNC0,FUNCM,FUNCN[@VSLOT][,OPT...]
SEQ:BUS:DEV.*[@VSLOT][,OPT...]
In the case of unplug the VSLOT and OPT must be omitted.
Xm expands this notation notation out and passes
more conventional parameters to qemu-xen.
E.g:
0000:00:01.00-03 becomes:
0000:00:01.00
0000:00:01.01
0000:00:01.02
0000:00:01.03
0000:00:01.00,03,05,07 becomes:
0000:00:01.00
0000:00:01.03
0000:00:01.05
0000:00:01.07
For a device that has functions 0, 1, 2, 3, 5 and 7,
0000:00:01.* becomes:
0000:00:01.00
0000:00:01.01
0000:00:01.02
0000:00:01.03
0000:00:01.05
0000:00:01.07
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Cc: Akio Takebe <takebe_akio@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 08:53:19 +0000 (09:53 +0100)]
hvmloader: pass-through: multi-function PCI hot-plug
This registers information to allow guests to recognise non-zero
functions when hot-plugged.
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Sat, 27 Jun 2009 08:51:37 +0000 (09:51 +0100)]
xend: pass-through: use devfn instead of slots as the unit for pass-through
Instead of suppling a slot number to qemu-xen, supply a devfn.
This and subsequent other changes will allow xend to ask
for more than one function to be inserted into a single slot -
by specifying which function of the slot should be used.
This is a minimal patch for this change. A subsequent
patch that has a lot of noise to rename slot to devfn
is intended to follow.
Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Thu, 25 Jun 2009 17:31:10 +0000 (18:31 +0100)]
Keir Fraser [Thu, 25 Jun 2009 17:28:59 +0000 (18:28 +0100)]
p2m hap: Fix dirty vram tracking function
This patch fixes an incorrect mode conversion when disable vram
dirty tracking.
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Wei Huang <wei.huang2@amd.com>
Keir Fraser [Thu, 25 Jun 2009 13:30:00 +0000 (14:30 +0100)]
minios: add few missing constants in limits.h
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Keir Fraser [Thu, 25 Jun 2009 12:51:40 +0000 (13:51 +0100)]
x86 hvm: Make sure port 0x80 in hvm_io_table[] is set correctly
regardless of execution order of hvm_enable() and check_port80().
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Thu, 25 Jun 2009 12:15:32 +0000 (13:15 +0100)]
tools: fix inverted logic check
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Thu, 25 Jun 2009 12:14:37 +0000 (13:14 +0100)]
stubdom: use XENFIRMWAREDIR
Attached patch installs ioemu-stubdom into XENFIRMWAREDIR
analogous to what we do with hvmloader.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Thu, 25 Jun 2009 12:14:03 +0000 (13:14 +0100)]
xend: create /var/lock/subsys at startup
Ubuntu puts /var/lock on tmpfs, so we should create /var/lock at
startup, rather than at installation time.
Signed-off-by: Jun Koi <junkoi2004@gmail.com>
Keir Fraser [Thu, 25 Jun 2009 12:12:32 +0000 (13:12 +0100)]
x86 hvm: Fix printf format specifier
Signed-off-by: Jun Koi <junkoi2004@gmail.com>
Keir Fraser [Thu, 25 Jun 2009 12:06:44 +0000 (13:06 +0100)]
VT-d: remove debug prints and turn on qinval read/write drains
This cleanup patch removes debug prints and turn on read and write
drains for VT-d queue invalidation if HW supports them.
Signed-off-by: Allen Kay <allen.m.kay@intel.com>
Keir Fraser [Thu, 25 Jun 2009 12:05:10 +0000 (13:05 +0100)]
tools: add SHAREDIR to buildmakevars2file
c/s 19818 dropped SHAREDIR from xen/util/path.py, which broke the "xm
new" command. This patch adds SHAREDIR back to the new
buildmakevars2file-closure function.
Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
Keir Fraser [Thu, 25 Jun 2009 12:02:37 +0000 (13:02 +0100)]
Fix buildsystem to detect udev > version 124
udev removed the udevinfo symlink from versions higher than 123 and
xen's build-system could not detect if udev is in place and has the
required version.
Signed-off-by: Marc-A. Dahlhaus <mad@wol.de>
Keir Fraser [Thu, 25 Jun 2009 11:59:46 +0000 (12:59 +0100)]
tools: fix x11 check
X.org is installed in /usr/X11R7.
Attached patch covers this in the x11 check.
Xen has no direct X11 dependency
(it's inherited from SDL and SDL is optional for qemu-dm)
so warn but don't fail if no X11 is installed.
Fixes build problem on distributions which build their packages (*BSD
and Gentoo).
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Wed, 24 Jun 2009 14:24:53 +0000 (15:24 +0100)]
blktap2: A final few NetBSD fixes
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Wed, 24 Jun 2009 13:03:20 +0000 (14:03 +0100)]
blktap2: Further netbsd build fixes.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Wed, 24 Jun 2009 10:17:11 +0000 (11:17 +0100)]
tools: remove hard coded paths in example config files
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Wed, 24 Jun 2009 10:16:42 +0000 (11:16 +0100)]
blktap2: Fix a & vs && typo
Signed-off-by: Jun Koi <junkoi2004@gmail.com>
Keir Fraser [Wed, 24 Jun 2009 10:16:08 +0000 (11:16 +0100)]
x86 mca: Fix typo of MCA recovery flags
The following patch fixes typo of MCA recovery flags.
It should be '<<' instead of '<'.
Signed-off-by: Kazuhiro Suzuki <kaz@jp.fujitsu.com>
Keir Fraser [Wed, 24 Jun 2009 10:15:31 +0000 (11:15 +0100)]
VT-d: don't disable VT-d engine in suspend for security purpose
force_iommu option is used to force enabling and using IOMMU for
security purpose. So when force_iommu is set, it shouldn't disable
VT-d engines in suspend.
Signed-off-by: Weidong Han <weidong.han@intel.com>
Keir Fraser [Wed, 24 Jun 2009 10:14:32 +0000 (11:14 +0100)]
xend: Fix vbd/tapdisk device destruction
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Keir Fraser [Wed, 24 Jun 2009 10:11:58 +0000 (11:11 +0100)]
blktap2: Fix some printf format specifiers (PRIu64).
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Wed, 24 Jun 2009 10:05:22 +0000 (11:05 +0100)]
Scaling guest's TSC when the target machine's frequency is different
with its requirement.
Using trap&emulate for guest's each rdtsc instruction first, maybe it
can be optimized later.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Keir Fraser [Wed, 24 Jun 2009 09:57:00 +0000 (10:57 +0100)]
Move muldiv64 out and make it as a public function.
muldiv64 is used to caculate u64*u32/u32, and we
will use it for TSC scaling.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Wed, 24 Jun 2009 09:48:21 +0000 (10:48 +0100)]
save/restore : Save guest's preferred TSC frequency in image
For save/restore or live migration between two different frequency
platforms, guest's preferred TSC frequency is required to caculate
guest's TSC after resotre, so save it in the image header.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Keir Fraser [Wed, 24 Jun 2009 09:47:07 +0000 (10:47 +0100)]
x86 shadow: Fix a few SHOPT_OUT_OF_SYNC ifdefs.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Tue, 23 Jun 2009 16:32:07 +0000 (17:32 +0100)]
Update hgignore file
Keir Fraser [Tue, 23 Jun 2009 16:27:01 +0000 (17:27 +0100)]
xend: Fix python syntax error
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Tue, 23 Jun 2009 16:26:28 +0000 (17:26 +0100)]
tools python: remove unused auxbin functions
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Tue, 23 Jun 2009 16:25:51 +0000 (17:25 +0100)]
Get rid of hardcoded pathes for stubdom and hotplug scripts
- Have the buid system generate a file which exports the install paths
for the hotplug scripts and stubdom / stubdom-dm
- Move file generation code from tools/python/Makefile into a gmake
macro
in Config.mk to avoid maintenance of three duplicates each with its
own
tweaks and bugs
- Export gmake variables into ioemu as shell variables
for upcoming ioemu patches
- Do above as a gmake macro to avoid maintenance of several duplicates
- Adjust hotplug scripts to find the right xen binaries from the
install directory
- Adjust stubdom-dm to use the install directories
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Tue, 23 Jun 2009 16:24:14 +0000 (17:24 +0100)]
blktap2: portability fixes for NetBSD
- Use standard off_t and lseek() instead of non-portable off64_t and
lseek64()
- Use uuid API as documented in DCE 1.1 RPC specification
- Add NetBSD implementation for blk_getimagesize() and
blk_getsectorsize()
- Use blk_getimagesize() and blk_getsectorsize()
- Fix uuid header check
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Tue, 23 Jun 2009 10:27:54 +0000 (11:27 +0100)]
xenconsoled: fix timestamp log
timestamp log is broken.
Also, xenconsoled might die with segfault.
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
Keir Fraser [Tue, 23 Jun 2009 10:26:22 +0000 (11:26 +0100)]
VT-d: correct kill hvm_timer
hvm_timer is created with the vector got from domain_irq_to_vector(),
accordingly it should use the same vector to kill the timer. The patch
corrects it in pci_clean_dpci_irqs().
Signed-off-by: Weidong Han <weidong.han@intel.com>
Keir Fraser [Tue, 23 Jun 2009 10:25:38 +0000 (11:25 +0100)]
xenconsoled: Fix rate-limit calculation overflow leading to console freezes.
From: Eric Tessler <eric@3tera.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Tue, 23 Jun 2009 10:23:27 +0000 (11:23 +0100)]
tools: don't require hardcoded firmware path in guest config file
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Tue, 23 Jun 2009 10:22:08 +0000 (11:22 +0100)]
Fix network-bridge ifup problem when bridge has no IP address.
When we want to setup a bridge without a ip address, function
do_ifup will not activate the bridge.
We should make the bridge active, then vif-bridge can work on the
bridge.
Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
Keir Fraser [Tue, 23 Jun 2009 10:20:10 +0000 (11:20 +0100)]
xend: Fix tapdisk creation for managed domains
The first start of a managed domain succeeds. But the second
start of the managed domain fails as follows. The problem occurs
when tapdisks are given to the managed domain. I think that the
problem occurs because the uname of tapdisks is overwritten with
"phy:/dev/xen/tadisk-2/tapdev*".
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Keir Fraser [Tue, 23 Jun 2009 10:14:24 +0000 (11:14 +0100)]
vtd: IO NUMA support
This patch adds VT-d RHSA processing for IO NUMA support. The basic
idea is to parse ACPI RHSA structure to obtain VT-d HW to proximity
domain mapping. This mapping is then used when allocating pages for
Vt-d HW data structures.
Signed-off-by: Allen Kay <allen.m.kay@intel.com>
Keir Fraser [Tue, 23 Jun 2009 10:13:29 +0000 (11:13 +0100)]
tools: consistently use $(PYTHON)
Signed-off-by: Christoph Egger <Christoph. Egger@amd.com>
Keir Fraser [Tue, 23 Jun 2009 10:11:46 +0000 (11:11 +0100)]
x86: Another assign_irq_vector() cleanup.
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Keir Fraser [Tue, 23 Jun 2009 10:10:29 +0000 (11:10 +0100)]
Only allow DOMCTL_max_vcpus to increase vcpus from zero.
Otherwise reallocation of the vcpus array is unsafe.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Fri, 19 Jun 2009 07:45:55 +0000 (08:45 +0100)]
VT-d: fix MSI source-id of interrupt remapping
This patch fixes an issue of MSI source-id. Currently MSI source-ids
are all set device bdf. It's incorrect for PCI (not PCIe) devices. The
patch set correct requester-ids of MSI to source-id. And also, wrap
functions to clean ioapic source-id.
Signed-off-by: Weidong Han <weidong.han@intel.com>
Keir Fraser [Fri, 19 Jun 2009 07:45:20 +0000 (08:45 +0100)]
VT-d: pci code cleanup
This patch moves the pci code from iommu.c to pci.c. Instead of setup
pci hierarchy in array bus2bridge in iommu_context_mapping, use
scan_pci_devices once to add all existed PCI devices in system to
alldevs_list and setup pci hierarchy in array bus2bridge. In addition,
implement find_upstream_bridge to find the upstream PCIe-to-PCI/PCIX
bridge or PCI legacy bridge for a PCI device, therefore it's cleanly
to handle context map/unmap for PCI device, even for source-id
setting.
Signed-off-by: Weidong Han <weidong.han@intel.com>
Keir Fraser [Fri, 19 Jun 2009 07:44:33 +0000 (08:44 +0100)]
xend: fix a regression in c/s 19791.
Using changeset 19791:
c0d2838fc10f, I can't create an HVM.
xend.log shows:
File "usr/lib64/python2.4/site-packages/xen/xend/image.py", line
759, in configure
store_dmargs.remove('-sdl')
ValueError: list.remove(x): x not in list
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
Keir Fraser [Fri, 19 Jun 2009 07:43:58 +0000 (08:43 +0100)]
x86: Fix legacy irq allocation issue
When try to assign vector for irq, we should not assign vector for
legacy irq, which has fixed mapped irq<->vector relationship.
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
Keir Fraser [Fri, 19 Jun 2009 07:43:28 +0000 (08:43 +0100)]
xend: fix BlktapController's device creation
Reset BlktapController's device class back to 'tap' once the device
has been created. This fixes save/restore for VMs with blktap2 disks.
Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
Keir Fraser [Fri, 19 Jun 2009 07:42:58 +0000 (08:42 +0100)]
P2M: check whether hap mode is enabled before using 2mb pages
This small patch checks whether hap mode is enabled when guest is
trying to allocate 2MB pages inside P2M. This prevents potential
errors when hap is disabled.
Cc: Chris Lalancette <clalance@redhat.com>
Cc: Sarathy, Bhavna <Bhavna.Sarathy@amd.com>
Signed-off-by: Wei Huang <wei.huang2@amd.com>
Keir Fraser [Fri, 19 Jun 2009 07:41:50 +0000 (08:41 +0100)]
IOMMU: Add two generic functions to vendor neutral interface
Add 2 generic functions into the vendor neutral iommu interface, The
reason is that from changeset 19732, there is only one global flag
"iommu_enabled" that controls iommu enablement for both vtd and amd
systems, so we need different code paths for vtd and amd iommu systems
if this flag has been turned on. Also, the early checking of
"iommu_enabled" in iommu_setup() is removed to prevent iommu
functionalities from been disabled on amd systems.
Signed-off-by: Wei Wang <wei.wang2@amd.com>
Keir Fraser [Thu, 18 Jun 2009 14:32:48 +0000 (15:32 +0100)]
buildconfigs/src.git-clone: use git clone, avoid git remote
git 1.4.x (which is on even some moderately recent systems) doesn't
have the `git remote' command. This is what caused the most recent
patchman build failure.
The machinery in buildconfigs/src.git-clone was rather more
complicated than needed, too. In this patch I replace this with a
similar set of runes to those used for ioemu-remote (almost identical
except that the QEMU_TAG feature is not supported in this instance).
I have done a successful test build with this change.
Cc: Ian Campbell <Ian.Campbell@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Keir Fraser [Thu, 18 Jun 2009 09:46:21 +0000 (10:46 +0100)]
x86 hvm: Fix bootstrapped boolean check in start_{svm,vmx}().
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Thu, 18 Jun 2009 09:31:17 +0000 (10:31 +0100)]
x86-64: do not pass unmanageable amounts of memory to Dom0
Due to address space restrictions it is not possible to successfully
pass more than about 500Gb to a Linux Dom0 unless its kernel specifies
a non-default phys-to-machine map location via XEN_ELFNOTE_INIT_P2M.
For non-Linux Dom0 kernels I can't say whether the limit could be set
to close to 1Tb, but since passing such huge amounts of memory isn't
very useful anyway (and can be enforced via dom0_mem=3D), the patch
doesn't attempt to guess the kernel type and restricts the memory
amount in all cases.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Keir Fraser [Thu, 18 Jun 2009 09:30:28 +0000 (10:30 +0100)]
Introduce page_list_move()
This not only allows to remove ia64's special implementation of
page_list_splice_init(), but also fixes the latent issue with the
direct list head assignment in the x86 code if that would ever get
switched back to using normal list entries for linking together pages
(i.e. whenever x86-64 is to support more tha 16Tb of memory).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Keir Fraser [Thu, 18 Jun 2009 09:29:58 +0000 (10:29 +0100)]
blktap: re-enable blktap1 if blktap2 is disabled
This patch re-enables a useful blktap1 for users who disable blktap2.
Itremoves tapdisk and blktapctrl from blktap2, both of which cause
problems with blktap operation. In addition, this patch modifies xend
to check for blktap2 installation. If the blktap2 driver isn't
running (hopefully because the dom0 kernel option wasn't selected) we
fall back to blktap.
Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
Keir Fraser [Thu, 18 Jun 2009 09:27:21 +0000 (10:27 +0100)]
xend: Improve error messages of xm sched-credit
This patch improves error messages of xm sched-credit as with error
messages of CS:19468.
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Keir Fraser [Thu, 18 Jun 2009 09:26:28 +0000 (10:26 +0100)]
xendomains script: Small fix
From: Fabian Zimmermann <xen-users@z-technologies.de>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Thu, 18 Jun 2009 09:20:45 +0000 (10:20 +0100)]
Allow tools to see the hypervisor command line.
This is useful from tools in the same way /proc/cmdline is useful for
the domain 0 kernel.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Keir Fraser [Thu, 18 Jun 2009 09:20:17 +0000 (10:20 +0100)]
stubdoms: qemu monitor support
Add support for the qemu monitor in a stubdom, the same way the
emulated serial support was added few days ago. The stubdom exports
the monitor as a pty and minios opens a console frontend; qemu in dom0
provides the correspondent backend for this additional pv console that
happens to be the qemu monitor.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Keir Fraser [Thu, 18 Jun 2009 09:19:25 +0000 (10:19 +0100)]
minios: Use posix_openpt() rather than non-standard openpty().
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Keir Fraser [Thu, 18 Jun 2009 09:18:10 +0000 (10:18 +0100)]
xend: pci: find_parent: should return string rather than int
Using changeset 19783:
61ec78692b13, device assignment can't work:
e.g., in find_the_uppermost_pci_bridge(),
parent = dev_parent.find_parent()
...
dev_parent = PciDevice(parent),
we can see parent['domain'] is int and in PciDevice's __init__,
int(dev['domain'], 16) would fail:
TypeError: int() can't convert non-string with explicit base
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Keir Fraser [Thu, 18 Jun 2009 09:14:16 +0000 (10:14 +0100)]
x86_64: allow more vCPU-s per guest
Since the shared info layout is fixed, guests are required to use
VCPUOP_register_vcpu_info prior to booting any vCPU beyond the
traditional limit of 32.
MAX_VIRT_CPUS, being an implemetation detail of the hypervisor, is no
longer being exposed in the public headers.
The tools changes are clearly incomplete (and done only so things
would
build again), and the current state of the tools (using scalar
variables all over the place to represent vCPU bitmaps) very likely
doesn't permit booting DomU-s with more than the traditional number of
vCPU-s. Testing of the extended functionality was done with Dom0 (96
vCPU-s, as well as 128 vCPU-s out of which the kernel elected - by way
of a simple kernel side patch - to use only some, resulting in a
sparse
bitmap).
ia64 changes only to make things build, and build-tested only (and the
tools part only as far as the build would go without encountering
unrelated problems in the blktap code).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Keir Fraser [Thu, 18 Jun 2009 09:05:23 +0000 (10:05 +0100)]
x86_64: don't allocate L1 per-domain page table pages in a single chunk
Instead, allocate them on demand, and adjust the consumer to no longer
assume the allocated space is contiguous.
This another prerequisite to extend to number of vCPU-s the hypervisor
can support per guest.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Keir Fraser [Thu, 18 Jun 2009 09:04:57 +0000 (10:04 +0100)]
x86: properly handle vcpu-to-pcpu mask conversion
This is one of the prerequisites to extend to number of vCPU-s the
hypervisor can support per guest.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Keir Fraser [Thu, 18 Jun 2009 08:56:28 +0000 (09:56 +0100)]
Remove bogus checked in file headers.chk, remove it on make clean, and
add it to .hgignore file.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Thu, 18 Jun 2009 08:47:49 +0000 (09:47 +0100)]
x86 svm: Clean up and fix start_svm() to avoid memory leaks and
resetting ASID generations.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Wed, 17 Jun 2009 06:39:27 +0000 (07:39 +0100)]
xend: pass-through: Clean up hvm_destroyPCIDevice()
There seems to be little need to use the domain, bus, slot and
function to look up the virtual slot to pass as the argument to
hvm_destroyPCIDevice(), only to have hvm_destroyPCIDevice() use the
virtual slot for the sole purpose of looking up the domain, bus, slot
and function.
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Wed, 17 Jun 2009 06:39:03 +0000 (07:39 +0100)]
xend: pass-through: Use common parsing code in getDeviceConfiguration()
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Wed, 17 Jun 2009 06:38:42 +0000 (07:38 +0100)]
xend: pass-through: Use common parsing code in parse_pci_configuration()
Signed-off-by: Simon Horman <horms@verge.net.au>
Keir Fraser [Wed, 17 Jun 2009 06:38:03 +0000 (07:38 +0100)]
xend: pass-through: Add pci_tuple_to_dict()
Signed-off-by: Simon Horman <horms@verge.net.au>